import _data from "../_data";
import _action from "../_action";
import websocket from '..//websocket';

export default {
    init(data){

    },
    /**
     * 获得对话数据*/
    /** 接收新消息 */
    chatData(data){
        let chat_data = _data.localData(data.chat_id),
            msg_reader_num = 0;
        /** 如果不是自己的消息,在这条会话界面,震动提示，没有在这条会话界面，震动加声音提示 */
        if(_data.data('user_info').id != data.data.msg.user_info.uid){
            //#ifdef APP-PLUS
            uni.vibrateLong();
            // #endif
            if(_data.localData('message_chat_id') == data.chat_id){
                _action.updataNoReader(data.chat_id);
            }
            else{
                _action.playVoice('/static/voice/onmessage.mp3');
                msg_reader_num = 1;
            }
        }
        /** 更新对话列表数据 */
        for(let i = 0,local_chat_list = _data.localData('chat_list'),j = local_chat_list.length;i < j;i ++){
            if(local_chat_list[i].chat_id == data.chat_id){
                switch(data.data.msg.type * 1){
                    case 0:
                        local_chat_list[i].last_msg = data.data.msg.content.text;
                        break;
                    case 1:
                        /** 语音 */
                        local_chat_list[i].last_msg = '[语音]';
                        break;
                    case 2:
                        /** 图片 */
                        local_chat_list[i].last_msg = '[图片]';
                        break;
                    case 3:
                        /** 视频 */
                        local_chat_list[i].last_msg = '[视频]';
                        break;
                    case 4:
                        /** 文件 */
                        local_chat_list[i].last_msg = '[文件]';
                        break;
                    case 5:
                        /** 红包 */
                        local_chat_list[i].last_msg = '[红包]';
                        break;
                    default:
                        /** 未知消息类型 */
                        local_chat_list[i].last_msg = '[未知]';
                        break;
                }
                local_chat_list[i].no_read_num += msg_reader_num;
                local_chat_list[i].time = data.data.msg.time;
                let action_list_data = local_chat_list[i];
                local_chat_list.splice(i,1);
                local_chat_list.unshift(action_list_data);
                _data.localData('chat_list',local_chat_list);
                uni.$emit('data_chat_list',local_chat_list);
                break;
            }
        }
        /** 在有这条对话的缓存数据情况下 */
        if(chat_data){
            chat_data.list.push(data.data);
            chat_data.list = chat_data.list.slice(-50);
            _data.localData(data.chat_id,chat_data);
            /** 如果在与对方的对话界面,发送数据到页面显示 */
            if(_data.localData('message_chat_id') == data.chat_id) {
                /** 保持页面50条数据，提升性能 */
                uni.$emit('data_chat_data_push',chat_data.list);
            }
        }else{
            _get.getChatList();
        }
        _action.setStatusTips();
    },
    /** 获得会话列表数据 */
    chatList(data){
        _data.localData('chat_list',data);
        uni.$emit('data_chat_list',data);
        _action.setStatusTips();
    },
    /** 获得基础数据 */
    base(data){
        data.user_info.photo += '?_=' + Math.random();
        data.user_info.circle_img += '?_=' + Math.random();
        _data.data('user_info',data.user_info);
        uni.$emit('data_user_info',data.user_info);
        _data.data('new_friend_tips_num',data.new_friend_tips_num);
        _data.data('no_reader_chat_num',data.no_reader_chat_num);
        _data.data('no_reader_circle',data.no_reader_circle);
        _data.data('no_reader_circle_chat_num',data.no_reader_circle_chat_num);
        _data.data('new_group_tips_num',data.new_group_tips_num);
        _action.setStatusTips();
        _action.downloadPhoto();
    },
    /** 撤回消息 */
    deleteChat(data){
        let chat_data = _data.localData(data.chat_id);
        for(let i = 0,j = chat_data.list.length;i < j;i++ ){
            if(chat_data.list[i].msg.id == data.data.msg.id){
                chat_data.list[i] = data.data;
                _data.localData(data.chat_id,chat_data);
                uni.$emit('data_chat_data_delete',chat_data.list);
                break;
            }
        }
    },
    /** 消息更新 */
    chatMsgUpdate(data){
        let chat_data = _data.localData(data.chat_id);
        for(let i = 0,j = chat_data.list.length;i < j;i++ ){
            if(chat_data.list[i].msg.id == data.data.msg.id){
                chat_data.list[i] = data.data;
                _data.localData(data.chat_id,chat_data);
                uni.$emit('chat_msg_update',chat_data.list);
                break;
            }
        }
    },
}
